EXISTS

عملگر EXISTS برای آزمایش وجود هرگونه رکورد در یک پرس و جو استفاده می شود.

اگر پرس و جو فرعی یک یا چند رکورد را برگرداند، عملگر EXISTS TRUE را برمی گرداند.

در زیر منتخبی از جدول "محصولات" در پایگاه داده نمونه Northwind آمده است:

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags18
2Chang1124 - 12 oz bottles19
3Aniseed Syrup1212 - 550 ml bottles10
4Chef Anton's Cajun Seasoning2248 - 6 oz jars22
5Chef Anton's Gumbo Mix2236 boxes21.35

و انتخابی از جدول "تامین کنندگان":

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountry
1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonEC1 4SDUK
2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA
3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA
4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan

عبارت SQL زیر TRUE را برمی گرداند و تامین کنندگانی را با قیمت محصول کمتر از 20 فهرست می کند:

 

SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price < 20);

عبارت SQL زیر TRUE را برمی گرداند و تامین کنندگان را با قیمت محصول برابر با 22 فهرست می کند:

 

SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price = 22);